﻿using System.Windows.Forms;
namespace TwinHead.Frameworks.WindowForms.KeyActions
{
    /// <summary>
    /// 입출력이 없는 단순한 메소드와 연결된 단축기의 액션클래스 입니다.
    /// </summary>
    public sealed class SimpleKeyAction : AbstractKeyAction
    {
        /// <summary>
        /// 기본 생성자 입니다.
        /// </summary>
        private SimpleKeyAction()
            : base()
        {
        }
        /// <summary>
        /// 기본 생성자 입니다.
        /// </summary>
        /// <param name="method">단축키가 호출되면, 실행할 대리자</param>
        public SimpleKeyAction( MethodInvoker method )
            : base( method )
        {
            this.actionMethod = method;
        }

        /// <summary>
        /// 이 액션과 연결된 기능을 호출하여 실행합니다.
        /// </summary>
        /// <param name="ctl"></param>
        /// <returns></returns>
        public override bool Execute( Control ctl )
        {
            if (actionMethod != null)
                actionMethod();

            return true;
        }
    }
}
